Skip to content

fix(secp256k1): support libsecp256k1 v0.7 seckey symbol rename#91

Open
m0wer wants to merge 1 commit into
Simplexum:masterfrom
m0wer:pr/secp256k1-v0.7
Open

fix(secp256k1): support libsecp256k1 v0.7 seckey symbol rename#91
m0wer wants to merge 1 commit into
Simplexum:masterfrom
m0wer:pr/secp256k1-v0.7

Conversation

@m0wer
Copy link
Copy Markdown

@m0wer m0wer commented May 26, 2026

libsecp256k1 v0.7.0 renamed secp256k1_ec_privkey_tweak_add and secp256k1_ec_privkey_negate to their secp256k1_ec_seckey_* counterparts. Loading the modern library against the old code path failed with an AttributeError on import.

Probe for the modern symbol first and fall back to the legacy one, then expose the resolved function under both names on the library handle so downstream code (including bitcointx.core.key) keeps working regardless of which spelling it uses.

Add a unit-test module that exercises _add_function_definitions against a fake CDLL exposing legacy-only, modern-only, or both symbol sets, so the compatibility shim is covered without requiring a real libsecp256k1.

Closes #88.

libsecp256k1 v0.7.0 renamed secp256k1_ec_privkey_tweak_add and
secp256k1_ec_privkey_negate to their secp256k1_ec_seckey_* counterparts.
Loading the modern library against the old code path failed with an
AttributeError on import.

Probe for the modern symbol first and fall back to the legacy one, then
expose the resolved function under both names on the library handle so
downstream code (including bitcointx.core.key) keeps working regardless
of which spelling it uses.

Add a unit-test module that exercises _add_function_definitions against
a fake CDLL exposing legacy-only, modern-only, or both symbol sets, so
the compatibility shim is covered without requiring a real libsecp256k1.

Closes Simplexum#88.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support libsecp256k1 v0.7.0

1 participant